package com.demo.crm.springboot3security.service;

import com.demo.crm.springboot3security.dto.FormLayoutConfig;
import com.demo.crm.springboot3security.entity.CustomForm;

/**
 * 表单布局服务接口
 */
public interface FormLayoutService {
    /**
     * 保存表单布局配置
     *
     * @param formId 表单ID
     * @param config 布局配置
     * @return 更新后的表单对象
     */
    CustomForm saveLayoutConfig(Long formId, FormLayoutConfig config);

    /**
     * 获取表单布局配置
     *
     * @param formId 表单ID
     * @return 布局配置
     */
    FormLayoutConfig getLayoutConfig(Long formId);

    /**
     * 验证布局配置
     *
     * @param form   表单对象
     * @param config 布局配置
     * @return 是否有效
     */
    boolean validateLayoutConfig(CustomForm form, FormLayoutConfig config);

    CustomForm getFormLayout(String code);
}